//
// Created by ls on 23-12-21.
//
#include <iostream>
#include <string>

/**
 * --int find(const string& str, int pos = 0) const;              //  查找str第一次出现位置,从pos开始查找
 * --int find(const char* s, int pos = 0) const;                  //  查找s第一次出现位置,从pos开始查找
 * --int find(const char* s, int pos, int n) const;               //  从pos位置查找s的前n个字符第一次位置
 * --int find(const char c, int pos = 0) const;                   //  查找字符c第一次出现位置
 * --int rfind(const string& str, int pos = npos) const;          //  查找str最后一次位置,从pos开始查找
 * --int rfind(const char* s, int pos = npos) const;              //  查找s最后一次出现位置,从pos开始查找
 * --int rfind(const char* s, int pos, int n) const;              //  从pos查找s的前n个字符最后一次位置
 * --int rfind(const char c, int pos = 0) const;                  //  查找字符c最后一次出现位置
 * --string& replace(int pos, int n, const string& str);          //  替换从pos开始n个字符为字符串str
 * --string& replace(int pos, int n,const char* s);               //  替换从pos开始的n个字符为字符串s
 */

// 字符串查找和替换
void test01()
{
  const std::string str1 = "abcdefg";

  // find  从左往右查
  std::string::size_type pos = str1.find("de");

  if (pos != std::string::npos)
    std::cout << "Found at position: " << pos << std::endl;
  else
    std::cout << "Substring not found." << std::endl;

  // rfind  从右往左查（尾查）
  pos = str1.rfind("de");
  if (pos != std::string::npos)
    std::cout << "Found at position: " << pos << std::endl;
  else
    std::cout << "Substring not found." << std::endl;
}

void test02()
{
  std::string str1 = "abcdefg";
  str1.replace(1, 3, "1111");
  std::cout << str1 << std::endl;
}

int main()
{
  // test01();
  test02();
  return 0;
}